package day1;

import java.io.Serializable;
import java.util.Comparator;


/**
 * 由此类可以发现 &表示必须都实现对应的接口才可以
 *
 * 如果是类的话只能是一个，并且是第一个
 */

public class Client {
    public static <T extends Serializable> T getResult(T param){
        return param;
    }

    public static <T extends Comparator> T getCom(T param){
        return param;
    }

    public static <T extends Comparator & Serializable> T getComAndSer(T param){
        return param;
    }

    public static <T extends Comparable<Integer> & Serializable> T getComparableAndSer(T param){
        return param;
    }

    // 注意这个方法还必须让继承了Teacher这个类的子类还要实现Comparable这个接口才可以
    public static <T extends  Teacher & Comparable> Teacher get(T teacher){
        // 因为泛型中指定了T这个泛型继承于Teacher，所以可以直接返回这个类

        System.out.println(teacher);
        return teacher;
    }

    public static <T extends  Comparable>  T getComparable(T param){
        return param;
    }
}
